<!DOCTYPE html>
<html lang="zh-CN"><head>
    <meta charset='utf-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1'><meta name='description' content='第一次体验在 docker 中的主从同步，用完之后感觉不错'><title>Docker 中 MySQL 进行主从同步</title>
    
    <link rel='canonical' href='https://sunwei.blog/p/docker-%E4%B8%AD-mysql-%E8%BF%9B%E8%A1%8C%E4%B8%BB%E4%BB%8E%E5%90%8C%E6%AD%A5/'>

<link rel="stylesheet" href="/scss/style.min.css"><meta property='og:title' content='Docker 中 MySQL 进行主从同步'>
<meta property='og:description' content='第一次体验在 docker 中的主从同步，用完之后感觉不错'>
<meta property='og:url' content='https://sunwei.blog/p/docker-%E4%B8%AD-mysql-%E8%BF%9B%E8%A1%8C%E4%B8%BB%E4%BB%8E%E5%90%8C%E6%AD%A5/'>
<meta property='og:site_name' content='A桑的杂货箱'>
<meta property='og:type' content='article'><meta property='article:section' content='Post' /><meta property='article:tag' content='docker' /><meta property='article:tag' content='mysql' /><meta property='article:tag' content='主从同步' /><meta property='article:published_time' content='2019-12-13T00:00:00&#43;00:00'/><meta property='article:modified_time' content='2019-12-13T00:00:00&#43;00:00'/><meta property='og:image' content='https://sunwei.blog/p/docker-%E4%B8%AD-mysql-%E8%BF%9B%E8%A1%8C%E4%B8%BB%E4%BB%8E%E5%90%8C%E6%AD%A5/cover.png' />
<meta name="twitter:title" content="Docker 中 MySQL 进行主从同步">
<meta name="twitter:description" content="第一次体验在 docker 中的主从同步，用完之后感觉不错"><meta name="twitter:card" content="summary_large_image">
	<meta name="twitter:image" content='https://sunwei.blog/p/docker-%E4%B8%AD-mysql-%E8%BF%9B%E8%A1%8C%E4%B8%BB%E4%BB%8E%E5%90%8C%E6%AD%A5/cover.png' /></head><body class="">
        <div class="container flex on-phone--column align-items--flex-start extended article-page with-toolbar">
            <aside class="sidebar left-sidebar sticky">
    <button class="hamburger hamburger--spin" type="button" id="toggle-menu" aria-label="切换菜单">
        <span class="hamburger-box">
            <span class="hamburger-inner"></span>
        </span>
    </button>

    <header class="site-info">
        
            <figure class="site-avatar">
                

                
                    
                    <img src="/img/avatar1_huda84896c9bf23e2f48c7de4e6ccdd7e8_360249_300x300_resize_box_2.png" width="300"
                        height="300" class="site-logo" loading="lazy" alt="Avatar">
                

                <span class="emoji">🍥</span>
            </figure>
        
        <h1 class="site-name"><a href="https://sunwei.blog">A桑的杂货箱</a></h1>
        <h2 class="site-description">有时候回头看看自己做的东西，感觉充实且鬼畜😂</h2>
    </header>

    <ol class="menu" id="main-menu">
        
        
        

        <li >
            <a href='https://sunwei.blog/'>
                
                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-home" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <polyline points="5 12 3 12 12 3 21 12 19 12" />
  <path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" />
  <path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" />
</svg>



                
                <span>Home</span>
            </a>
        </li>
        
        

        <li >
            <a href='https://sunwei.blog/about'>
                
                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-user" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <circle cx="12" cy="7" r="4" />
  <path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" />
</svg>



                
                <span>About</span>
            </a>
        </li>
        
        

        <li >
            <a href='https://sunwei.blog/archives'>
                
                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-archive" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <rect x="3" y="4" width="18" height="4" rx="2" />
  <path d="M5 8v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-10" />
  <line x1="10" y1="12" x2="14" y2="12" />
</svg>



                
                <span>Archives</span>
            </a>
        </li>
        
    </ol>
</aside>
            <main class="main full-width">
    <div id="article-toolbar">
        <a href="https://sunwei.blog" class="back-home">
            <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-left" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <polyline points="15 6 9 12 15 18" />
</svg>



            <span>Back</span>
        </a>
    </div>

    <article class="has-image main-article">
    <header class="article-header">
        <div class="article-image">
            <img srcset="/p/docker-%E4%B8%AD-mysql-%E8%BF%9B%E8%A1%8C%E4%B8%BB%E4%BB%8E%E5%90%8C%E6%AD%A5/cover_hu81200c1cba70a189fc5075fa6ae62b86_24632_1024x0_resize_box_2.png 1024w, /p/docker-%E4%B8%AD-mysql-%E8%BF%9B%E8%A1%8C%E4%B8%BB%E4%BB%8E%E5%90%8C%E6%AD%A5/cover_hu81200c1cba70a189fc5075fa6ae62b86_24632_2000x0_resize_box_2.png 2000w"
                    src="/p/docker-%E4%B8%AD-mysql-%E8%BF%9B%E8%A1%8C%E4%B8%BB%E4%BB%8E%E5%90%8C%E6%AD%A5/cover_hu81200c1cba70a189fc5075fa6ae62b86_24632_2000x0_resize_box_2.png" width="933" height="417" loading="lazy"
                    alt="Featured image of post Docker 中 MySQL 进行主从同步" />
            
        </div>
    

    <div class="article-details">
    
    <header class="article-category">
        
            <a href="https://sunwei.blog/categories/%E6%8A%98%E8%85%BE/" 
                    class="color-tag"
                    data-image="/p/docker-%E4%B8%AD-mysql-%E8%BF%9B%E8%A1%8C%E4%B8%BB%E4%BB%8E%E5%90%8C%E6%AD%A5/cover_hu81200c1cba70a189fc5075fa6ae62b86_24632_20x20_fill_box_smart1_2.png" 
                    data-key="" 
                    data-hash="md5-ZpeE8kpFWvQ3y9HqJ4LuQg==">
                    折腾
                </a>
            
        
            <a href="https://sunwei.blog/categories/%E6%97%A5%E5%B8%B8/" 
                    class="color-tag"
                    data-image="/p/docker-%E4%B8%AD-mysql-%E8%BF%9B%E8%A1%8C%E4%B8%BB%E4%BB%8E%E5%90%8C%E6%AD%A5/cover_hu81200c1cba70a189fc5075fa6ae62b86_24632_20x20_fill_box_smart1_2.png" 
                    data-key="" 
                    data-hash="md5-ZpeE8kpFWvQ3y9HqJ4LuQg==">
                    日常
                </a>
            
        
    </header>
    

    <h2 class="article-title">
        <a href="https://sunwei.blog/p/docker-%E4%B8%AD-mysql-%E8%BF%9B%E8%A1%8C%E4%B8%BB%E4%BB%8E%E5%90%8C%E6%AD%A5/">Docker 中 MySQL 进行主从同步</a>
    </h2>

    
    <h3 class="article-subtitle">
        第一次体验在 docker 中的主从同步，用完之后感觉不错
    </h3>
    <footer class="article-time">
        <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <circle cx="12" cy="12" r="9" />
  <polyline points="12 7 12 12 15 15" />
</svg>



        <time class="article-time--published">Dec 13, 2019</time>
        
        <div style="margin-left: 20px;">
            <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-user-check" width="44" height="44" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  <circle cx="9" cy="7" r="4" />
  <path d="M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" />
  <path d="M16 11l2 2l4 -4" />
</svg>
        </div>
        <div  class="article-time--published">
            孙玮
        </div>
        
        
    </footer></div>
</header>

    <section class="article-content">
    <h1 id="docker--mysql-问题">Docker &amp;&amp; Mysql 问题</h1>
<h2 id="1mysql-8-无法使用第三方软件登录">1.MySQL 8 无法使用第三方软件登录</h2>
<p>首先进入 mysql 中</p>
<div class="highlight"><pre class="chroma"><code class="language-sql" data-lang="sql"><span class="n">use</span> <span class="n">mysql</span><span class="p">;</span>
<span class="k">select</span> <span class="k">user</span><span class="p">,</span><span class="k">host</span><span class="p">,</span><span class="n">plugin</span><span class="p">,</span><span class="n">authentication_string</span> <span class="k">from</span> <span class="k">user</span><span class="p">;</span>
</code></pre></div><p>查一下输出，如果加密方式是：<code>caching_sha2_password</code> 则需要修改一下加密方式成为 <code>mysql_native_password</code></p>
<div class="highlight"><pre class="chroma"><code class="language-sql" data-lang="sql"><span class="cm">/*使用默认的 mysql 认证模式*/</span>
<span class="k">ALTER</span> <span class="k">USER</span> <span class="s1">&#39;root&#39;</span><span class="o">@</span><span class="s1">&#39;%&#39;</span> <span class="n">IDENTIFIED</span> <span class="k">WITH</span> <span class="n">mysql_native_password</span> <span class="k">BY</span> <span class="s1">&#39;root&#39;</span><span class="p">;</span> 
</code></pre></div><h2 id="2mysql-主从模式配置">2.MySQL 主从模式配置</h2>
<h3 id="21-创建-mysql-容器">2.1 创建 MySQL 容器</h3>
<p>首先使用 docker 创建两个容器。</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash"><span class="c1">#主</span>
docker run -itd --name mysql-master -p 3307:3306 -e <span class="nv">MYSQL_ROOT_PASSWORD</span><span class="o">=</span>root mysql
<span class="c1">#从</span>
docker run -itd --name mysql-servent -p 3308:3306 -e <span class="nv">MYSQL_ROOT_PASSWORD</span><span class="o">=</span>root mysql
</code></pre></div><p>如果需要无论何时都可以自动启动这两个容器的话可以加上 <code>--restart=always</code> 参数
另外下面是关于 <code>--restart</code> 可选值的说明：</p>
<div class="highlight"><pre class="chroma"><code class="language-text" data-lang="text">no -  容器退出时，不重启容器；
on-failure - 只有在非0状态退出时才从新启动容器；
always - 无论退出状态是如何，都重启容器；
</code></pre></div><p>比如下面的命令可以保证只要 docker 启动这些容器也会自动启动。</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash"><span class="c1">#主</span>
docker run -itd --name mysql-master --restart<span class="o">=</span>always  -p 3307:3306 -e <span class="nv">MYSQL_ROOT_PASSWORD</span><span class="o">=</span>root mysql
<span class="c1">#从</span>
docker run -itd --name mysql-servent --restart<span class="o">=</span>always  -p 3308:3306 -e <span class="nv">MYSQL_ROOT_PASSWORD</span><span class="o">=</span>root mysql
</code></pre></div><h3 id="22-配置主数据库">2.2 配置主数据库</h3>
<p>然后在<strong>主</strong>数据库中创建一个新的账号赋予其 <code>slave</code> 的权限。</p>
<div class="highlight"><pre class="chroma"><code class="language-sql" data-lang="sql"><span class="cm">/*创建一个用户名是 reader 的用户密码是 123456 ，任何地址都可以访问*/</span> 
<span class="k">GRANT</span> <span class="n">REPLICATION</span> <span class="n">SLAVE</span> <span class="k">ON</span> <span class="o">*</span><span class="p">.</span><span class="o">*</span> <span class="k">to</span> <span class="s1">&#39;reader&#39;</span><span class="o">@</span><span class="s1">&#39;%&#39;</span> <span class="n">identified</span> <span class="k">by</span> <span class="s1">&#39;123456&#39;</span><span class="p">;</span> 

<span class="cm">/*创建一个用户名是 reader 的用户密码是 123456 ，ip 是 192.168.1.200 才可以访问*/</span> 
<span class="k">GRANT</span> <span class="n">REPLICATION</span> <span class="n">SLAVE</span> <span class="k">ON</span> <span class="o">*</span><span class="p">.</span><span class="o">*</span> <span class="k">TO</span> <span class="s1">&#39;reader&#39;</span><span class="o">@</span><span class="s1">&#39;192.168.1.200&#39;</span> <span class="n">IDENTIFIED</span> <span class="k">BY</span> <span class="s1">&#39;123456&#39;</span><span class="p">;</span> 

<span class="cm">/*创建完成以后赋予读取权限*/</span>
<span class="k">GRANT</span> <span class="k">SELECT</span><span class="p">,</span><span class="n">REPLICATION</span> <span class="n">SLAVE</span> <span class="k">ON</span> <span class="o">*</span><span class="p">.</span><span class="o">*</span> <span class="k">TO</span> <span class="s1">&#39;reader&#39;</span><span class="o">@</span><span class="s1">&#39;%&#39;</span><span class="p">;</span>
</code></pre></div><p>查看<strong>主</strong>数据库中的日志信息，并且设置角色。</p>
<p>首先查看一下<strong>主</strong>数据库的<code>server-id</code>,当你使用主从拓扑时，一定要对所有 MySQL 实例都分别指定一个独特的互不相同的 <code>server-id</code> 。默认值为0，当 <code>server-id=0</code> 时，对于主机来说依然会记录二进制日志，但会拒绝所有的从机连接；对于从机来说则会拒绝连接其它实例。</p>
<div class="highlight"><pre class="chroma"><code class="language-sql" data-lang="sql"><span class="k">show</span> <span class="n">variables</span> <span class="k">like</span> <span class="s1">&#39;%server_id%&#39;</span><span class="p">;</span>
</code></pre></div><p>返回以下信息</p>
<div class="highlight"><pre class="chroma"><code class="language-text" data-lang="text">mysql&gt; show variables like &#39;%server_id%&#39;;
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| server_id      | 1     |
| server_id_bits | 32    |
+----------------+-------+
2 rows in set (0.01 sec)
</code></pre></div><p>我们可以在线直接修改全局变量server-id，但不会立即生效，所以修改后记得重启服务。而重启后又会重新读取系统配置文件配置，导致刚才的修改失效，因此建议修改配置文件后重启服务而不是在线修改：</p>
<div class="highlight"><pre class="chroma"><code class="language-text" data-lang="text">#my.cnf
[mysqld]
server-id=1
</code></pre></div><p>如果使用在线修改的话可以输入以下语句</p>
<div class="highlight"><pre class="chroma"><code class="language-sql" data-lang="sql"><span class="k">set</span> <span class="k">global</span> <span class="n">server_id</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span> <span class="c1">--设置最大连接数
</span></code></pre></div><p>接下来需要查看并且记录一下主数据库的状态，</p>
<div class="highlight"><pre class="chroma"><code class="language-sql" data-lang="sql"><span class="k">show</span> <span class="n">master</span> <span class="n">status</span><span class="p">;</span>
</code></pre></div><p>返回以下信息：</p>
<div class="highlight"><pre class="chroma"><code class="language-text" data-lang="text">mysql&gt; SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000003 |      442 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
</code></pre></div><p>将 <code>File</code> 和 <code>Position</code> 中的内容复制到粘贴板中。</p>
<h3 id="23-配置从数据库">2.3 配置从数据库</h3>
<p>登录从数据库后需要修改一下他的 <code>server-id</code></p>
<div class="highlight"><pre class="chroma"><code class="language-text" data-lang="text">#my.cnf
[mysqld]
server-id=2
</code></pre></div><p>接下来配置一下从数据库连接主数据库的信息</p>
<div class="highlight"><pre class="chroma"><code class="language-sql" data-lang="sql"><span class="n">CHANGE</span> <span class="n">MASTER</span> <span class="k">TO</span>
<span class="n">MASTER_HOST</span><span class="o">=</span><span class="s1">&#39;127.0.0.1&#39;</span><span class="p">,</span>
<span class="n">MASTER_PORT</span><span class="o">=</span><span class="mi">3307</span><span class="p">,</span>
<span class="n">MASTER_USER</span><span class="o">=</span><span class="s1">&#39;reader&#39;</span><span class="p">,</span>
<span class="n">MASTER_PASSWORD</span><span class="o">=</span><span class="s1">&#39;123456&#39;</span><span class="p">,</span>
<span class="n">MASTER_LOG_FILE</span><span class="o">=</span><span class="s1">&#39;binlog.000003&#39;</span><span class="p">,</span> <span class="cm">/*这里填写上面复制的 File 信息*/</span>
<span class="n">MASTER_LOG_POS</span><span class="o">=</span><span class="mi">957</span><span class="p">;</span> <span class="cm">/*这里填写上面的 Position 中的信息*/</span>
</code></pre></div><p>使用 <code>start slave</code> 启动主从同步</p>
<p>使用命令查看 <code>show slave status\G</code></p>

</section>


    <footer class="article-footer">
    
    <section class="article-tags">
        
            <a href="https://sunwei.blog/tags/docker/">docker</a>
        
            <a href="https://sunwei.blog/tags/mysql/">mysql</a>
        
            <a href="https://sunwei.blog/tags/%E4%B8%BB%E4%BB%8E%E5%90%8C%E6%AD%A5/">主从同步</a>
        
    </section>


    
    <section class="article-copyright">
        <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-copyright" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <circle cx="12" cy="12" r="9" />
  <path d="M14.5 9a3.5 4 0 1 0 0 6" />
</svg>



        <span>Licensed under CC BY-NC-SA 4.0</span>
    </section>
    </footer>

    
</article>

    <aside class="related-contents--wrapper">
    
    
        <h2 class="section-title">相关文章</h2>
        <div class="related-contents">
            <div class="flex article-list--tile">
                
                    
<article class="has-image">
    <a href="https://sunwei.blog/p/%E5%B9%B4%E8%BD%BB%E4%BA%BA%E7%9A%84%E7%AC%AC%E4%BA%8C%E5%8F%B0%E9%BB%91%E8%8B%B9%E6%9E%9C/">
        
        
            <div class="article-image">
                <img src="/p/%E5%B9%B4%E8%BD%BB%E4%BA%BA%E7%9A%84%E7%AC%AC%E4%BA%8C%E5%8F%B0%E9%BB%91%E8%8B%B9%E6%9E%9C/cover_hu9587307df3b0a528bff40458715a7575_87846_250x150_fill_box_smart1_2.png" width="250" height="150" 
                        loading="lazy" data-key="" data-hash="md5-dS0/fDtGlSnjIaP5o&#43;W0hQ==">
                
            </div>
        

        <div class="article-details">
            <h2 class="article-title">年轻人的第二台黑苹果</h2>
        </div>
    </a>
</article>
                
                    
<article class="">
    <a href="https://sunwei.blog/p/auxpi%E5%AF%B9%E6%8E%A5-flicker-%E7%9A%84%E4%B8%80%E4%BA%9B%E5%9D%91/">
        
        

        <div class="article-details">
            <h2 class="article-title">AUXPI对接 flicker 的一些坑</h2>
        </div>
    </a>
</article>
                
                    
<article class="has-image">
    <a href="https://sunwei.blog/p/%E6%9C%BA%E6%A2%B0%E5%8E%9F%E7%90%86%E5%A4%A7%E4%BD%9C%E4%B8%9A-%E5%87%B8%E8%BD%AE%E7%94%9F%E6%88%90%E5%99%A8/">
        
        
            <div class="article-image">
                <img src="/p/%E6%9C%BA%E6%A2%B0%E5%8E%9F%E7%90%86%E5%A4%A7%E4%BD%9C%E4%B8%9A-%E5%87%B8%E8%BD%AE%E7%94%9F%E6%88%90%E5%99%A8/cover_huc4bffe6863479b6bd0ad6a7dd8026253_290434_250x150_fill_box_smart1_2.png" width="250" height="150" 
                        loading="lazy" data-key="" data-hash="md5-GeMp21dEVnmnNM&#43;Gwlja7Q==">
                
            </div>
        

        <div class="article-details">
            <h2 class="article-title">机械原理大作业-凸轮生成器</h2>
        </div>
    </a>
</article>
                
                    
<article class="has-image">
    <a href="https://sunwei.blog/p/%E6%A0%91%E8%8E%93%E6%B4%BE%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E7%B3%BB%E7%BB%9F/">
        
        
            <div class="article-image">
                <img src="/p/%E6%A0%91%E8%8E%93%E6%B4%BE%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E7%B3%BB%E7%BB%9F/cover_hu5ddf1820a179cbdcdf664e6e5a048684_36219_250x150_fill_box_smart1_2.png" width="250" height="150" 
                        loading="lazy" data-key="" data-hash="md5-yrKwdAlpU1u/9FoZ0Dd41g==">
                
            </div>
        

        <div class="article-details">
            <h2 class="article-title">树莓派人脸识别系统</h2>
        </div>
    </a>
</article>
                
            </div>
        </div>
    
</aside>

    
        
    <script src="https://utteranc.es/client.js" 
        repo="0xDkd/comment"
        issue-term="pathname"
        theme="preferred-color-scheme" 
        
        crossorigin="anonymous" 
        async>
</script>

<style>
    .utterances {
        max-width: unset;
    }
</style>

    

    <footer class="site-footer">
    <section class="copyright">&copy; 2020 A桑的杂货箱</section>
    <section class="powerby">
        Built with <a href="https://gohugo.io/" target="_blank" rel="noopener">Hugo</a> <br />
        Theme <b><a href="https://github.com/CaiJimmy/hugo-theme-stack" target="_blank" rel="noopener" data-version="1.0.5">Stack</a></b> designed by
        <a href="https://jimmycai.com" target="_blank" rel="noopener">Jimmy</a>
    </section>
</footer>
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true" style="display:none">

    
    <div class="pswp__bg"></div>

    
    <div class="pswp__scroll-wrap">

        
        <div class="pswp__container">
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
        </div>

        
        <div class="pswp__ui pswp__ui--hidden">

            <div class="pswp__top-bar">

                

                <div class="pswp__counter"></div>

                <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>

                <button class="pswp__button pswp__button--share" title="Share"></button>

                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>

                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>

                
                
                <div class="pswp__preloader">
                    <div class="pswp__preloader__icn">
                        <div class="pswp__preloader__cut">
                            <div class="pswp__preloader__donut"></div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
                <div class="pswp__share-tooltip"></div>
            </div>

            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
            </button>

            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
            </button>

            <div class="pswp__caption">
                <div class="pswp__caption__center"></div>
            </div>

        </div>

    </div>

</div>
            </main>
        </div>
        <script src="https://cdn.jsdelivr.net/npm/node-vibrant@3.1.5/dist/vibrant.min.js"
    integrity="sha256-5NovOZc4iwiAWTYIFiIM7DxKUXKWvpVEuMEPLzcm5/g=" crossorigin="anonymous"></script><script type="text/javascript" src="/ts/main.js" defer></script>
<script>
    (function () {
        const customFont = document.createElement('link');
        customFont.href = "https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&display=swap";

        customFont.type = "text/css";
        customFont.rel = "stylesheet";

        document.head.appendChild(customFont);
    }());
</script>
<link rel="stylesheet" href="/css/highlight/light.min.css" media="(prefers-color-scheme: light)">
<link rel="stylesheet" href="/css/highlight/dark.min.css" media="(prefers-color-scheme: dark)">

    </body>
</html>
